import { TimeRange } from "@/utils"

export interface IQueryListParams {
	auditStatus: string
	lockStatus: number
	merchantId: string
	operatorName: string
	operatorType: number
	pageNum: number
	pageSize: number
	timeEnd: string
	timeStart: string
	timeType: number
	searchTime?: TimeRange
}

export interface IResponseItem {
	afterModify: string
	applyName: string
	applyRemark: string
	applyType: number
	auditDatetime: string | null
	auditName: string
	auditRemark: string | null
	auditStatus: number
	beforeModify: string
	bmhId: string | null
	bmhName: string | null
	createdAt: string
	eventId: string
	id: string
	lockAccountId: string
	lockDatetime: string
	lockName: string
	lockStatus: number
	merchantId: string
	merchantName: string
	proxyLevel: number
	proxyLevelName: string
	stepCode: number
	updatedAt: string
	userId: string
	userName: string
	userType: number
	lockOrder: boolean
}

export interface IQueryItemDetailParams {
	id: string
}

export interface IAuditInfo {
	afterModify: string
	applyName: string
	applyRemark: string
	applyType: number
	auditDatetime: string | null
	auditName: string
	auditRemark: string | null
	auditStatus: number
	beforeModify: string
	bmhId: string | null
	bmhName: string | null
	createdAt: string
	eventId: string
	id: string
	lockAccountId: string
	lockDatetime: string
	lockName: string
	lockStatus: number
	merchantId: string
	merchantName: string
	proxyLevel: number
	proxyLevelName: string
	stepCode: number | null
	updatedAt: string
	userId: string
	userName: string
	userType: number
}

export interface IProxyInfo {
	accountType: number
	accountsReceivable: number
	accumulatedCommission: number
	accumulatedRebate: number
	bankChannelStatus: string | null
	birthday: string | null
	borrowAmount: number | null
	businessModel: number
	centerWalletBalance: number
	commissionBalance: number
	commissionContractId: string
	commissionMode: number
	commissionPolicyTypeId: string
	commissionSettleCycle: number
	commissionSignStatus: string | null
	contractModel: number
	contractStatus: number
	createdAt: string
	creditLevel: number
	creditQuota: number
	creditUpTopProxyAudit: string | null
	creditWalletBalance: number
	crossOptLevel: number | null
	currency: string
	currencySymbol: string
	debtStatus: number
	directlyUnderMemberNum: number
	directlyUnderProxyNum: number
	dispatchAmount: number | null
	email: string | null
	enforceContractStatus: number
	entryAuthority: number
	flygram: string | null
	gender: number
	id: string
	joinCode: string
	labelId: string
	labelName: string | null
	lastLoginDatetime: string | null
	lastLoginDeviceNo: string | null
	lastLoginIp: string | null
	liquidationStatus: number
	loginLockStatus: number
	manageClubLockStatus: string | null
	maxLevel: number
	merchantId: string
	merchantName: string
	merchantPath: string
	mobile: string | null
	newContractModel: string | null
	openLockStatus: number
	parentMerchantId: string
	parentMerchantPath: string
	parentProxyId: string
	parentProxyLevel: number
	parentProxyLevelName: string
	parentProxyName: string | null
	parentProxyPath: string
	password: string | null
	payPassword: string | null
	paymentLockStatus: number
	playerToProxy: number
	proxyLevel: number
	proxyLevelName: string
	proxyPath: string
	proxyPathUsername: string
	qq: string | null
	quotaBalance: number
	realName: string | null
	rebateAllotMode: number
	rebateContractId: string
	rebatePolicyTypeId: string
	rebateSignStatus: string | null
	registerDeviceNo: string
	registerDeviceType: number
	registerIp: string
	remark: string | null
	salt: string | null
	teamCreditTotal: number | null
	topImagesUrl: string | null
	topMerchantId: string
	topMerchantName: string
	topProxyId: string
	topProxyName: string
	totalDeposit: number
	totalDepositNum: number
	totalFirstDepositAmount: number
	totalFirstDepositNum: number
	totalWithdraw: number
	totalWithdrawNum: number
	transferInNum: number
	transferOutNum: number
	underMemberNum: number
	underProxyNum: number
	updatedAt: string
	userName: string
	windControlId: string
	windControlName: string
	withdrawLimitType: number
}

export interface IResponseItemDetail {
	auditInfo: IAuditInfo
	proxyInfo: IProxyInfo
}

export interface IUpdateLockParams {
	id: string
	lockStatus: number
	merchantId: string
}

export interface ILockRecordParams {
	id: string
	lockStatus: number
	merchantId: string
	remark?: string
}

export interface IAuditRecordParams {
	id: string
	remark: string
	auditStatus: boolean | number
}
